<?php

class UploadAction extends Action{

	public function Index(){
		//使用COOKIE存储图片是为了，方便大家理解，把相关图片存入数据库
		$small = cookie('small');
		$big = cookie('big');
		$this->assign('small',$small);
		$this->assign('big',$big);
		$this->display();
	}

	//上传头像
	public function Avatar(){
		/*
		这里的注释，我在我的项目中，判断用户是否登陆的。。。
		$user = islogin();
		if(!$user){
			 echo '<script type="text/javascript">
			 window.parent.alert("您还没有登陆");
			 window.parent.location.href="'.U("Login/Index").'";
			 </script>';
			 exit;
		}*/
		$do = $_GET['do'];
		if($do =='save'){
			$type = isset($_GET['type'])?trim($_GET['type']):'small';
			//切好的图片名字用，用户的ID做唯一值
			$pic_id = trim($_GET['photoId']);
			//$pic_id = md5($user['id']);
			//$orgin_pic_path = $_GET['photoServer']; //原始图片地址，备用.
			//$from = $_GET['from']; //原始图片地址，备用.
			//生成图片存放路径
			//$new_avatar_path = './Public/Avatar/'.$type.'/'.$pic_id.'.jpg';
			$new_avatar_path = './Upload/Avatar/'.ucfirst($type).'/'.$pic_id.'.jpg';
			//将POST过来的二进制数据直接写入图片文件.
			$len = file_put_contents($new_avatar_path,file_get_contents("php://input"));
			//$this->log_result($pic_id);
			//原始图片比较大，压缩一下. 效果还是很明显的, 使用80%的压缩率肉眼基本没有什么区别
			//小图片 不压缩约6K, 压缩后 2K, 大图片约 50K, 压缩后 10K
			$avtar_img = imagecreatefromjpeg($new_avatar_path);
			imagejpeg($avtar_img,$new_avatar_path.'?a=1',80);
			//nix系统下有必要时可以使用 chmod($filename,$permissions);
			
			//输出新保存的图片位置, 测试时注意改一下域名路径, 后面的statusText是成功提示信息.
			//status 为1 是成功上传，否则为失败.
			/********一下代码包括注释是 上传图片到入库的列子************/
			//$model = M($mod);
			//$save_data[$model->getPk()] = $user['id'];
			if($type=='big'){  //这里的判断不能删除，因为是生成的2张图片,FLASH组件在你提交的时候会自动提交2次，根据TYPE来判断存放大图小图。。
				$save_data['big_avatar'] = trim($new_avatar_path,'.');
				cookie('big',$save_data['big_avatar']);
			}else{
				$save_data['small_avatar'] = trim($new_avatar_path,'.');
				cookie('small',$save_data['small_avatar']);
			}
			//$model->save($save_data);
			///$this->log_result($model->getLastSql());
			$d['data']['urls'][0] = $new_avatar_path.'?rand='.uniqid();
			$d['status'] = 1;
			$d['statusText'] = '上传成功!';
			$msg = json_encode($d);
			//file_put_contents('1.txt',$msg);  //调试信息
			echo $msg;		
			exit;
		}else{
			if (!empty($_FILES)) {
				import("ORG.UploadFile");
				import("ORG.Image");
				$upload = new UploadFile(); // 实例化上传类
				$upload->maxSize = 500000; // 设置附件上传大小
				$upload->saveRule = 'uniqid';
				$upload->uploadReplace = true;
				$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg'); // 设置附件上传类型
				$upload->savePath = './Upload/Avatar/Origin/'; // 设置附件上传目录
				if (!$upload->upload()) { // 上传错误提示错误信息
					//$this->error($upload->getErrorMsg());
					echo '<script type="text/javascript">
					window.alert("'.$upload->getErrorMsg().'");
					window.parent.hideLoading();
					</script>';
					exit;
				} else {
					// 上传成功 获取上传文件信息
					$info = $upload->getUploadFileInfo();
					$pic_abs_path = trim($info[0]['savepath'].$info[0]['savename'],'.').'?rand='.uniqid();
					$pic_id = time();//使用时间来模拟图片的ID.
					//写新上传照片的ID.
					echo '<script type="text/javascript">window.parent.hideLoading();
					window.parent.close_but();
					window.parent.buildAvatarEditor("'.$pic_id.'","'.$pic_abs_path.'","photo");
					</script>';
					exit;
				}
			}
		}
	}

}

?>